1. Field of the Invention
The present invention generally relates to positioning devices, such as computer numerical control (CNC) machines, coordinate measuring machines, and hexapod machining centers. More particularly, the present invention relates to a CNC machine having interactive control of a corner tolerance that is programmed to vary with the corner angle.
2. Description of the Related Art
In computer numerical control (CNC) machines, a workpiece is machined to a desired shape by moving a tool at a commanded speed along a machining path instructed by a machining program. The standard NC (numerical control) program, including G-codes and M-codes for controlling the path of the tool, has been used in the industry for years. It takes a relatively high degree of skill and a great deal of time to create such an NC-code program. Hence, programming errors often appear when the program is run for the first time.
The typical CNC machine requires a multistep process in order to manufacture a machined part. First, the machinist studies the blueprint and devises a method of manufacturing the part, determines which fixtures are needed to hold the part during manufacture, decides which tools are needed to machine the part, and chooses the order of the machining steps. Second, the NC-code program is created. Recently, various computer aided manufacturing (CAM) and computer aided design (CAD) systems have been developed to automate this process, but it is still done by hand in many facilities. The CNC machine program is typically generated using the well-known NC-code program language with G-codes and M-codes appearing in the format specified by EIA Standard RS-274-D. Third, the machine is set up as the operator mounts the holding fixture, references the zero position and establishes program coordinates, loads the NC-code program, and installs the tools used to manufacture the part. At this point, the machine is ready to begin the manufacturing process.
The manufacturing process begins when the operator pushes a start button on the operator control panel such as illustrated in FIG. 1. The operator cautiously watches as the machine proceeds during its initial run through the NC-code program. All too often, there is a program error or setup error which causes a "machine crash", i.e., a catastrophic collision that destroys the part, breaks the tool, and possibly damages the machine. To avoid such a crash, the operator must carefully watch the operation of the machine for undesired motions and see how the machine operates through the untested program execution. Once the first part is machined, the manufacture of the remaining parts is relatively straightforward, until the operator has to introduce a change or adjustment to either the NC-code or the CNC machine setup. Again, until the change is verified by running through the NC-code again, a costly mistake is always possible.
In an attempt to alleviate this setup problem, several CNC machine manufacturers have provided the operator with various procedures to utilize during the machine setup process. The most common is the "jog mode" of operation, wherein the operator utilizes a manual pulse generator (MPG) handwheel or a jog feed button on the machine control panel to manually move the tool head along an axis by turning the MPG handwheel in a manual jog mode of operation. This mode is primarily used with a multi-position selector switch to choose whether to "jog" the tool in the X, Y, or Z axis directions. Examples of various jog mode systems are shown in U.S. Pat. Nos. 4,510,427, 5,200,680, 5,453,674, and 5,493,193. These four U.S. patents are hereby incorporated by reference for their teaching related to the construction and operation of the manual pulse generator.
The majority of CNC machines simply utilize the MPG handwheel to move the tool head manually along an axis in the jog mode of operation. Some manufacturers also offer a remote jog handwheel option, so the operator can walk around to get a closer look at the workpiece during setup. Others utilize a "single step" button on the control panel in a single step state of operation, which executes only one block of NC-code and then stops until the start button is pressed to execute one more block of NC-code. Still other manufacturers utilize the MPG handwheel essentially as a kind of "automated start button" to single-step through several blocks of NC-code in succession. Although this may be useful in some mold-making applications where the NC-code is relatively simple, this does not provide adequate setup and test capability to ensure that the NC-code is error-free or that the manufacture of the part will not cause a machine crash.
Other controls commonly provide the operator with: (1) the ability to reduce the "rapid travel rate" of speed of the machine tool slides, typically between a predefined selection of speed reductions such as 5%, 25%, or 50%; (2) the ability to let the operator push a "slide-hold" button to stop the motion of the machine slides at any time during the operation of the program; (3) the ability to establish a trial feed rate modification using a "feed rate" potentiometer; and (4) an "emergency stop button" which is used to stop the CNC machine if an accident occurs. The operator can utilize a combination of these buttons or knobs to set up the machine and slow it down during initial operations. However, a series of buttons can present a confusing situation to a novice operator, particularly when observing the operation of the machine and not watching the control panel.
All of these methods provide the operator limited ability to intervene during the setup procedure. More importantly, however, they do not allow the operator to actually run through the NC-code program steps at a controlled speed and direction. They only provide the operator with a series of buttons or knobs to either stop all processes or reduce certain predefined forward feed rates or travel rates of the machine. As such, the operator does not have optimum control to verify each part program the first time it is run, i.e., to provide a "true dry-run" of the manufacturing process. If the operator needs to modify the NC-code program, the operator must stop the process, make the edit, and manually restart the program at a desired position. Once again, the modified program would have to be carefully checked to verify the changes.
Another drawback of conventional CNC machines is their inability to machine corners of a workpiece to a specified tolerance with speed and accuracy. FIGS. 2A-2C illustrate three different examples of how conventional CNC machines carry out the machining of a programmed path P having a corner C to a specified tolerance .delta.. In the following examples, the deviation from the programmed path P by the actual machining path is indicated by a solid arrow A.
In the first example shown in FIG. 2A, the tool follows a desired position that is incrementally updated along a programmed path P. When the desired position of the tool is at the corner C of the programmed path P, the desired position does not advance beyond this corner until the tool's actual position comes within the specified tolerance .delta. of this corner. When the tool's actual position is within the specified tolerance .delta., the desired position advances beyond the corner C and the tool follows the path A.
On the other hand, if the tool's actual position is outside the specified tolerance .delta., the desired position waits at the corner C for the tool's actual position to catch up. If the desired position advances beyond this corner without waiting for the actual position to sufficiently catch up, the specified tolerance at the corner will not be satisfied, because, as a result, a cut indicated by the dashed arrow A' will be made.
In the second example shown in FIG. 2B, the desired position is permitted to deviate from the programmed path and to advance past the corner C of the programmed path. This is done to allow the actual position of the tool to reach the corner C much more quickly than the example of FIG. 2A. However, in the method of FIG. 2B, the actual path A often deviates beyond the corner C before returning to the programmed path around the corner C, and, as a result, too much material is left at the corner.
In the third example shown in FIG. 2C, the actual path A of the tool includes a loop path that is defined at the corner C of the programmed path, such that the tool cuts along one side of the corner, moves around the loop path, and then cuts along the other side of the corner.
The conventional CNC machines that carry out machining of corners in accordance with the above examples, however, have the following disadvantages. The CNC machine operating according to the first example has slow throughput. The CNC machine operating according to the second example often leaves too much material at the corners as shown in FIG. 2B. The CNC machine operating according to the third example requires complex programming to define the actual path A of the tool to have loop paths at the corners.
Moreover, in conventional CNC machines, once the program for the move is executed, parameters defined in the program for controlling the speed and accuracy of machining corners are, for the most part, not adjustable. The ability to control feed rates using a potentiometer is an exception, but the control is very limited. The feed rate can be changed only within a certain predefined range, e.g., between 0% and 150% of the programmed value.
Therefore, when an operator of a conventional CNC machine desires to change any of the control parameters for machining corners, the operator must first stop the machine and enter the change as a program change before the new parameters will be recognized by the CNC machine.